VLC x264 GCC profiling
by marcus.erlandsson on Aug 21, 2009 |
marcus.erlandsson
Posts: 38 Joined: Nov 22, 2007 Last seen: Mar 7, 2013 |
||
One of the first tasks we need to do is "GCC-profiling of VLC-x264".
We want to use the following SW: http://www.videolan.org/developers/x264.html |
RE: VLC x264 GCC profiling
by ckavalipati on Aug 22, 2009 |
ckavalipati
Posts: 19 Joined: Aug 3, 2009 Last seen: Oct 30, 2012 |
||
List of sites from which test video sequences can be obtained (taken from x264 forum post)
"On Monday, December 18, 2006 at 18:06:40 +0800, Tonald DL wrote: > Anybody knows where can download YUV 420 video files? > > I need quit a lot original video sequences with different size to do tests. Video sequences often used for codec development are available here: http://www.tkn.tu-berlin.de/research/evalvid/cif.html http://www.tkn.tu-berlin.de/research/evalvid/qcif.html ftp://ftp.tnt.uni-hannover.de/pub/svc/testsequences/ /Fredrik" |
RE: VLC x264 GCC profiling
by gil_savir on Aug 23, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Hi all,
I grabbed a snapshot of x264 and compiled it successfully. I'm now studying the structure of this encoder and the H.264/AVC standard in general. I think I'll try to compile it using 'prof' in order to analyze the parts that are most computing intensive. Please suggest other adequate methods/tools for the analysis. I assume that we should use .YUV files to emulate bit-stream input. However, I'm not sure which formats should be used for the analysis. There are various parameters in this exploration space: - pixels formats (4:4:4 / 4:2:2 / 4:2:0) - frame sizes - aspect ratios - ... I also assume that computation tasks may be affected by the nature of the test files (fast/slow motion, dark/bright scenes, homogeneous / heterogeneous scenes, and other properties). Please correct me if I'm wrong. Therefore, in order to choose adequate test-flies for the analysis, I need some help from someone with knowledge of these parameters and their influence over encoding computation tasks. A reference to concise material that explains the influence of these parameters would also be appreciated. |
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009 |
gijoprems
Posts: 13 Joined: Jun 17, 2008 Last seen: Jan 8, 2014 |
||
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like, - Tools used to profile - Machine used to run x264 (Multicore or not, RAM etc) - Input parameters (Resolution, fps, quality of details in the sequence etc) For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc. What say mates? -Gijo |
RE: VLC x264 GCC profiling
by brianhxh on Aug 24, 2009 |
brianhxh
Posts: 5 Joined: Jul 8, 2009 Last seen: Oct 14, 2009 |
||
Hi, all
Does anyone has a version of x264 that can be compiled using Microsoft Visual Studio? It seems still having a lot of things to do for Windows compilation. I'm not familiar with linux debug environment for C, such as GDB, so can anyone help that? Thanks. Regards Brian |
RE: VLC x264 GCC profiling
by alianov on Aug 24, 2009 |
alianov
Posts: 1 Joined: Mar 11, 2009 Last seen: Aug 29, 2009 |
||
Let us agree on a list of tools we will work with before diving into profilling.
|
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009 |
marcus.erlandsson
Posts: 38 Joined: Nov 22, 2007 Last seen: Mar 7, 2013 |
||
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like, - Tools used to profile - Machine used to run x264 (Multicore or not, RAM etc) - Input parameters (Resolution, fps, quality of details in the sequence etc) For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc. What say mates? -Gijo The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?! The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc.. What are you thought!? /Marcus |
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009 |
marcus.erlandsson
Posts: 38 Joined: Nov 22, 2007 Last seen: Mar 7, 2013 |
||
Let us agree on a list of tools we will work with before diving into profilling.
I agree, but since I'm a hardware guy I will let you guys decide tool etc :-) /Marcus |
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009 |
gijoprems
Posts: 13 Joined: Jun 17, 2008 Last seen: Jan 8, 2014 |
||
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like, - Tools used to profile - Machine used to run x264 (Multicore or not, RAM etc) - Input parameters (Resolution, fps, quality of details in the sequence etc) For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc. What say mates? -Gijo The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?! The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc.. What are you thought!? /Marcus Do we have an OpenRISC simulator(as in SIMULATOR)? If so, we could start with the porting so that it would be useful at the later stage of this project. Another option would be to use an ARM platform; but the effort for porting to ARM will be of no use as we progress; my two cents. -Gijo |
RE: VLC x264 GCC profiling
by toanfxt on Aug 24, 2009 |
toanfxt
Posts: 4 Joined: Jun 24, 2008 Last seen: Sep 18, 2017 |
||
The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?! /Marcus Most of components in H.264 use integer operations such as motion estimation, or transformation and quantization. Thus I think profiling in x86 or others will get the same results in terms of computational load. |
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009 |
marcus.erlandsson
Posts: 38 Joined: Nov 22, 2007 Last seen: Mar 7, 2013 |
||
The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?! The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc.. What are you thought!? /Marcus Do we have an OpenRISC simulator(as in SIMULATOR)? If so, we could start with the porting so that it would be useful at the later stage of this project. Another option would be to use an ARM platform; but the effort for porting to ARM will be of no use as we progress; my two cents. -Gijo Yes, the OpenRISC processor has got an architecture-simulator: http://opencores.org/openrisc,or1ksim It's very easy to install the whole toolchain under Linux Ubuntu (or in cygwin under windows), you just run the install-script. More info can be found here: http://opencores.org/openrisc,gnu_toolchain /Marcus |
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009 |
marcus.erlandsson
Posts: 38 Joined: Nov 22, 2007 Last seen: Mar 7, 2013 |
||
The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?! /Marcus Most of components in H.264 use integer operations such as motion estimation, or transformation and quantization. Thus I think profiling in x86 or others will get the same results in terms of computational load. In that case, wouldn't it then be possible/good if we both did profiling on a "today supported processor" and in parallel started to port the whole x264 SW to the OpenRISC, since the OpenRISC will anyhow run some part of the x264 code. Do we have enough SW-resources to handle both in parallel? /Marcus |
RE: VLC x264 GCC profiling
by goldenmean on Aug 24, 2009 |
goldenmean
Posts: 3 Joined: Jun 2, 2009 Last seen: May 29, 2011 |
||
Hello,
We can have people working on the port of X264 encoder to Openrisc using the openrisc toolchain. At same time, we can profile it thoroughly on Intelx86 based platform on linux as well as on windows(Just to make sure we have consistent profiling results, plus windows based profiling might tell something which gprof might not) I was able to build, and execute the x264 encoder on a linux(Fedora) and a Intelx86 architecture. I encoded a raw yuv sequence to a .264 encoded bit stream(High profile, Level3, resolution:720x480, . I have one question related to makefile. Next i tried to enable profiling, i added the switch -pg in the makefile at below places, When i run the x264 executable on linux, to encode a sequence, gmon.out is generated, but when i use command : gprof x264 gmon.out it says gprof: file `x264' has no symbols and so was not able to get any profile information using gprof. Am i missing something? Can someone tell in detail, how to use gprof to get profile results on linux. What changes to makefile are needed for that? -AD. P.S. I am also trying to build the same source on Windows using MS tools. |
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009 |
gijoprems
Posts: 13 Joined: Jun 17, 2008 Last seen: Jan 8, 2014 |
||
Hello,
We can have people working on the port of X264 encoder to Openrisc using the openrisc toolchain. At same time, we can profile it thoroughly on Intelx86 based platform on linux as well as on windows(Just to make sure we have consistent profiling results, plus windows based profiling might tell something which gprof might not) I was able to build, and execute the x264 encoder on a linux(Fedora) and a Intelx86 architecture. I encoded a raw yuv sequence to a .264 encoded bit stream(High profile, Level3, resolution:720x480, . I have one question related to makefile. Next i tried to enable profiling, i added the switch -pg in the makefile at below places, When i run the x264 executable on linux, to encode a sequence, gmon.out is generated, but when i use command : gprof x264 gmon.out it says gprof: file `x264' has no symbols and so was not able to get any profile information using gprof. Am i missing something? Can someone tell in detail, how to use gprof to get profile results on linux. What changes to makefile are needed for that? -AD. P.S. I am also trying to build the same source on Windows using MS tools. Have you tried configuring x264 with --enable-debug and compiling it? -Gijo |
RE: VLC x264 GCC profiling
by goldenmean on Aug 24, 2009 |
goldenmean
Posts: 3 Joined: Jun 2, 2009 Last seen: May 29, 2011 |
||
Hi Gijo,
I was able to get the profile information using gprof. I did configure with --enable-debug and --enable-prof options, and then build the source. Those two configure options were what i had not used earlier. One General query - Do we have any common area on the H.264 Porject space wherein we can upload files for others to download, etc (e.g. Some profiling results, analysis etc..) This kind of arrangement would help going forward. Thanks. -Ajit |